<!DOCTYPE html>
<html lang="zh">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>
    
    函数的调用 - DSRBLOG
    
  </title>
  

  
  
  <link href="atom.xml" rel="alternate" title="DSRBLOG" type="application/atom+xml">
  <link rel="stylesheet" href="asset/css/style.min.css">
  <link rel="stylesheet" href="asset/css/doc.css">
  <script src="asset/app.js"></script>


</head>

<body> <section class="ct-body">
	<div class="container">
		<div class="columns is-variable bd-klmn-columns is-4 is-centered">
			<div class="column is-four-fifths">
				<div class="post-body single-content">
					
					<h1 class="title">
						函数的调用
					</h1>


					<div class="media">
						
						
						<div class="media-content">
							<div class="content">
								<p>
									<span class="date">2022/01/14 01:19 上午</span>
									

									

									<br />
									<span class="tran-tags">Tags:</span>&nbsp;
									
									<a class="tag is-link is-light">#C语言</a>
									

								</p>
							</div>
						</div>

					</div>
				</div>
				<article class="markdown-body single-content">
					<h2><a id="%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E7%9A%84%E4%B8%80%E8%88%AC%E5%BD%A2%E5%BC%8F" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>函数调用的一般形式</h2>
<p>函数调用的一般形式为：<code>函数名(实参表列)</code></p>
<h5><a id="%E4%BE%8B%E5%A6%82" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>例如:</h5>
<pre class="line-numbers"><code class="language-c">max(a,b)
</code></pre>
<h3><a id="%E8%AF%B4%E6%98%8E" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>说明</h3>
<ul>
<li>
<p>如果调用无参函数，则<code>实参表列</code>可以没有，但括号不能省略</p>
</li>
<li>
<p>如果<code>实参表列</code>包含多个<code>实参</code>，则各参数之间用逗号分割。</p>
</li>
<li>
<p><code>实参</code>与<code>形参</code>的个数相等，顺序对应，类型匹配。</p>
</li>
</ul>
<h3><a id="%E6%8C%89%E5%87%BD%E6%95%B0%E5%9C%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E4%BD%8D%E7%BD%AE%E6%9D%A5%E5%88%86%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%9C%89%E4%BB%A5%E4%B8%8B%E4%B8%89%E7%A7%8D%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>按函数在程序中出现的位置来分，可以有以下三种函数调用方式</h3>
<h4><a id="1%E3%80%81%E5%87%BD%E6%95%B0%E8%AF%AD%E5%8F%A5" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>1、函数语句</h4>
<ul>
<li>把函数调用作为一个语句。这时不要求函数带返回值，只要求函数完成一定的操作。</li>
</ul>
<h4><a id="2%E3%80%81%E5%87%BD%E6%95%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>2、函数表达式</h4>
<ul>
<li>
<p>函数出现在一个表达时中，这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算</p>
</li>
<li>
<p>例如：</p>
<pre class="line-numbers"><code class="language-c">x = max(a,b)
</code></pre>
</li>
</ul>
<h4><a id="3%E3%80%81%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>3、函数参数</h4>
<ul>
<li>函数调用作为一个函数的实参。</li>
</ul>
<h5><a id="%E4%BE%8B%E5%A6%82%EF%BC%9A" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>例如：</h5>
<pre class="line-numbers"><code class="language-c">m = max(a,max(b,c));
</code></pre>
<br>
<ul>
<li>其中<code>max(b,c)</code>是一次函数调用，它的值作为<code>max()</code>另一次调用的实参。<code>m</code>的值是<code>a、b、c</code>三者中的最大者</li>
</ul>
<h2><a id="%E5%87%BD%E6%95%B0%E7%9A%84%E5%B5%8C%E5%A5%97%E8%B0%83%E7%94%A8" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>函数的嵌套调用</h2>
<ul>
<li>层层深入 逐层返回</li>
</ul>
<h3><a id="%E4%BE%8B%EF%BC%9A" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>例：</h3>
<p>输入4个整数，找出其中最大的数。</p>
<pre class="line-numbers"><code class="language-c">#include &lt;stdio.h&gt;

int main()
{
    int a, b, c, d;
    int fun(int, int, int, int); //函数的声明（参数名省略）
    scanf(&quot;%d,%d,%d,%d&quot;, &amp;a, &amp;b, &amp;c, &amp;d);
    printf(&quot;max=%d&quot;, fun(a, b, c, d));
}

int fun(int a, int b, int c, int d) //函数的定义
{
    int m;
    int max(int x, int y); //函数的声明
    //---函数的调用(实参)---
    m=max(a,b);
    m=max(m,c);
    m=max(m,d);
    //m = max(a, max(b, max(c, d)));
    //--------------------
    return m;
}

int max(int x, int y) //函数的定义（形参）
{
    return x &gt; y ? x : y;
}
</code></pre>

				</article>
				<div class="comments-wrap">
					<div class="share-comments">
						

						

						
					</div>
				</div><!-- end comments wrap -->
			</div>
		</div><!-- end columns -->
	</div><!-- end container -->
</section>  














<script src="asset/prism.js"></script>









</body>

</html>